home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Games of Daze
/
Infomagic - Games of Daze (Summer 1995) (Disc 1 of 2).iso
/
x2ftp
/
msdos
/
gamesrc
/
roll5
/
roll5.bas
< prev
next >
Wrap
BASIC Source File
|
1990-10-13
|
35KB
|
928 lines
Ser1$ = "10"
Ser2$ = "00"
Ser3$ = "00"
ET$ = " ROLL 5 (Ver 2.0) - A DolSOFT CREATION Ser # " + Ser1$ + Ser2$ + Ser3$ + " "
Exit$ = ET$
'Exit$ = ET$ + " ---- Registration has not yet been paid! ---- "
'******************************************************************************
CLS
SD = 0 'sound is ON
LOCATE , , 0
Q1$ = CHR$(16)
Q2$ = CHR$(17)
PJ$ = CHR$(23)
BG = 0
CB = 0
6 OPTION BASE 1
7 DIM OK$(5, 19), R$(100), COUNT(10), KEEP(10), A$(20), B$(16), C(10), SCORE(5), Player$(5)
8 DIM FL$(5), CNT(5), roll(5), BOT(5), TOP(5)
DIM J3$(15)
Page% = 0
K$ = "Keep"
VC1$ = "╔══════════════════════════════════════════════════════════════════════════════╗"
VC2$ = "║ ║"
VC3$ = "╚══════════════════════════════════════════════════════════════════════════════╝"
B$(1) = "ONES . . . . . . . ."
B$(2) = "TWOS . . . . . . . ."
B$(3) = "THREES . . . . . . ."
B$(4) = "FOURS. . . . . . . . "
B$(5) = "FIVES. . . . . . . ."
B$(6) = "SIXES. . . . . . . ."
B$(7) = "Three of a Kind. . . "
B$(8) = "Four of a Kind . . ."
B$(9) = "Full House . . . . ."
B$(10) = "Small Straight . . ."
B$(11) = "Large Straight . . . "
B$(12) = "R O L L 5. . . . ."
B$(13) = "Chance . . . . . . ."
B$(14) = "Upper SubScore"
B$(15) = "Upper Bonus for 63+"
B$(16) = "Lower SubScore"
A$(1) = "╔═══════════════════════╤═══════╤═══════╤═══════╤═══════╤═══════╗ ╔═════════╗"
A$(2) = "║ │ │ │ │ │ ║ ║ ║"
A$(3) = "║ │ │ │ │ │ ║ ║ ║"
A$(4) = "║ │ │ │ │ │ ║ ╚═════════╝"
A$(5) = "║ │ │ │ │ │ ║ ╔═════════╗"
A$(6) = "║ │ │ │ │ │ ║ ║ ║"
A$(7) = "║ │ │ │ │ │ ║ ║ ║"
A$(8) = "╟───────────────────────┼───────┼───────┼───────┼───────┼───────╢ ╚═════════╝"
A$(9) = "║ │ │ │ │ │ ║ ╔═════════╗"
A$(10) = "║ │ │ │ │ │ ║ ║ ║"
A$(11) = "║ │ │ │ │ │ ║ ║ ║"
A$(12) = "║ │ │ │ │ │ ║ ╚═════════╝"
A$(13) = "║ │ │ │ │ │ ║ ╔═════════╗"
A$(14) = "║ │ │ │ │ │ ║ ║ ║"
A$(15) = "║ │ │ │ │ │ ║ ║ ║"
A$(16) = "╟───────────────────────┼───────┼───────┼───────┼───────┼───────╢ ╚═════════╝"
A$(17) = "║ │ │ │ │ │ ║ ╔═════════╗"
A$(18) = "║ │ │ │ │ │ ║ ║ ║"
A$(19) = "║ │ │ │ │ │ ║ ║ ║"
A$(20) = "╚═══════════════════════╧═══════╧═══════╧═══════╧═══════╧═══════╝ ╚═════════╝"
R$(1) = "█▀▀▀▀▄ ▄█▀▀▀█▄ ██ ██ █▀▀▀▀▀▀"
R$(2) = "█▄▄▄▄▄▀ █ █ ██ ██ █▄▄▄▄▄"
R$(3) = "█ ▀▄ ▀█▄▄▄█▀ ██▄▄▄▄▄ ██▄▄▄▄▄ ▄▄▄▄▄▄▀"
J3$(1) = "███████"
J3$(2) = "███ ███"
J3$(3) = "███████"
J3$(4) = "█▀█████"
J3$(5) = "███████"
J3$(6) = "█████▄█"
J3$(7) = "█▀█████"
J3$(8) = "███ ███"
J3$(9) = "█████▄█"
J3$(10) = "█▀███▀█"
J3$(11) = "███████"
J3$(12) = "█▄███▄█"
J3$(13) = "█▀███▀█"
J3$(14) = "███ ███"
J3$(15) = "█▄███▄█"
FD1$ = "Roll #1:"
FD2$ = " Use F1-F7 to change colors... F8=Arrows F9=Abort F10=Save Changes"
3 BOT = 0
4 TOP = 0
5 NO$ = " "
9 '
10 ' BOARD COLORS C1,BG,CB
11 ' DICE COLORS C2,C6,CB
12 ' MESSAGE COLORS C3,BG,CB
13 ' NAME COLORS C4,BG,CB
14 ' TOTAL SCORE COLORS C5,BG,CB
15 ' WORDS C7,BG,CB
16 '
17 '
18 '
19 '
PRINT "Three color schemes are available:"
PRINT "Color, Monochrome, or Laptop system (C, M, or L)?"
1 V$ = INKEY$: IF V$ = "" THEN 1
IF V$ = "Q" OR V$ = "q" THEN GOTO quit2
IF MID$(V$, 2, 1) = "D" AND SD = 0 THEN SD = 1: GOSUB SD2: GOTO 1
IF MID$(V$, 2, 1) = "D" AND SD = 1 THEN SD = 0: GOSUB SD2: GOTO 1
IF V$ = CHR$(27) THEN GOTO quit2
IF V$ = "c" OR V$ = "C" THEN CLS : PRINT "Loading ROLL5...": SHELL "copy roll5.col roll5.clr >nul": GOTO 2
IF V$ = "m" OR V$ = "M" THEN CLS : PRINT "Loading ROLL5...": SHELL "copy roll5.mon roll5.clr >nul": GOTO 2
IF V$ = "l" OR V$ = "L" THEN CLS : PRINT "Loading ROLL5...": SHELL "copy roll5.lap roll5.clr >nul": GOTO 2
GOTO 1
2 CLS
20 OPEN "ROLL5.CLR" FOR INPUT AS #1
22 INPUT #1, c1: INPUT #1, C2: INPUT #1, C3: INPUT #1, c4: INPUT #1, c5: INPUT #1, c6: INPUT #1, C7: INPUT #1, Q1: INPUT #1, Q2
24 CLOSE #1
Q1$ = CHR$(Q1)
Q2$ = CHR$(Q2)
30 GOSUB 7200 ' PRINTS "ROLL5" ACROSS TOP
100 '
105 KEY OFF
110 COLOR 14, 0
LOCATE 12, 26: PRINT " To Play ROLL5 Press 'R'"
111 LOCATE 14, 26: PRINT " To Set COLORS Press 'C'"
LOCATE 16, 26: PRINT " To See Hi SCORES Press 'S'"
LOCATE 18, 26: PRINT " To QUIT Roll5 Press 'Q'"
LOCATE 25, 2: PRINT "Alt/I for Instructions";
GOSUB SD2
COLOR 1, 4
FOR GAB = 9 TO 21
LOCATE GAB, 20: PRINT " ";
LOCATE GAB, 57: PRINT " ";
NEXT GAB
COLOR 15, 4
LOCATE 8, 20: PRINT " At any time F10 toggles sound off/on! ";
COLOR 15, 4
LOCATE 22, 20: PRINT " DolSOFT CREATIONS Version 2.0 ";
COLOR 14, 0
112 'CH$ = INPUT$(1)
V$ = INKEY$: IF V$ = "" THEN 112
CH$ = V$
IF MID$(V$, 2, 1) = PJ$ THEN GOSUB Help
IF MID$(CH$, 2, 1) = "D" AND SD = 0 THEN SD = 1: GOSUB SD2: GOTO 110
IF MID$(CH$, 2, 1) = "D" AND SD = 1 THEN SD = 0: GOSUB SD2: GOTO 110
IF CH$ = CHR$(27) THEN GOTO quit2
113 IF CH$ = "R" OR CH$ = "r" THEN
IF FirstGame$ = "N" THEN
CHAIN "roll5"
END IF
FirstGame$ = "N"
GOTO 160
END IF
114 IF CH$ = "C" OR CH$ = "c" THEN GOTO Colors
115 IF CH$ = "s" OR CH$ = "S" THEN
GOSUB ShowScores
GOTO 2
END IF
116 IF CH$ = "q" OR CH$ = "Q" THEN GOTO quit2
118 GOTO 112
ShowScores:
20000 '********************** show HI SCORES ******************************
20001 '********************************************************************
20010 SHELL "SORT /R <ROLL5.SCO >HISCORES.DAT"
FOR KL = 6 TO 23: LOCATE KL, 1: PRINT NO$; : NEXT KL
20015 OPEN "HISCORES.DAT" FOR INPUT AS #1
20020 COLOR c5, BG, CB: LOCATE 5, 21: PRINT "========================================";
20025 COLOR C3, BG, CB
20030 FOR VB = 7 TO 23: INPUT #1, A$
LOCATE VB, 26: PRINT A$;
NEXT VB
CLOSE #1
COLOR c5, BG, CB: LOCATE 25, 2: PRINT " ========================================";
204 FOR alk = 1 TO 200: NEXT alk
LOCATE 25, 2: PRINT "press any key";
FOR alk = 1 TO 200: NEXT alk
LOCATE 25, 2: PRINT "PRESS ANY KEY";
20040 V$ = INKEY$: IF V$ = "" THEN 204
IF MID$(V$, 2, 1) = PJ$ THEN GOSUB Help
IF V$ = CHR$(27) THEN GOTO quit
IF MID$(V$, 2, 1) = "D" AND SD = 0 THEN SD = 1: GOSUB SD2: GOTO 20040
IF MID$(V$, 2, 1) = "D" AND SD = 1 THEN SD = 0: GOSUB SD2: GOTO 20040
20050 RETURN
150 SHELL "COLORS.BAS"
151 GOTO 2
160 GOSUB 9000 '*********** PRINTS THE PLAYING SCREEN ******************
200 ' *********** INPUTS THE NUMBER OF PLAYERS ***************
201 IF SD = 0 THEN BEEP
299 COLOR C3, BG, CB: LOCATE 25, 2: PRINT " # OF PLAYERS (1-5) ";
300 N$ = INKEY$: IF N$ = "" THEN 300
IF MID$(V$, 2, 1) = PJ$ THEN GOSUB Help
IF N$ = CHR$(27) THEN GOTO quit
IF MID$(N$, 2, 1) = "D" AND SD = 0 THEN SD = 1: GOSUB SD2: GOTO 300
IF MID$(N$, 2, 1) = "D" AND SD = 1 THEN SD = 0: GOSUB SD2: GOTO 300
301 IF ASC(N$) < 49 THEN 299
302 IF ASC(N$) > 53 THEN 299
303 N = VAL(N$)
307 COLOR C3, BG, CB: LOCATE 25, 4: PRINT NO$;
IF V$ = CHR$(27) THEN GOTO quit
309 ROW = 6 '************ INPUTS THE NAMES OF THE PLAYERS *****************
310 FOR P = 1 TO N
330 IF SD = 0 THEN SOUND 880, .5
COLOR C3, BG, CB: LOCATE 25, 4: PRINT "ENTER PLAYER #"; P; "NAME OR INITIALS (1-7 LETTERS) ";
340 INPUT ; Player$(P): LOCATE 25, 4: PRINT NO$;
341 IF LEN(Player$(P)) = 0 THEN 330
342 IF LEN(Player$(P)) > 7 THEN 330
346 IF LEN(Player$(P)) < 3 THEN COL = 74
347 IF LEN(Player$(P)) = 3 THEN COL = 73
248 IF LEN(Player$(P)) = 4 THEN COL = 73
249 IF LEN(Player$(P)) = 5 THEN COL = 72
250 IF LEN(Player$(P)) = 6 THEN COL = 72
251 IF LEN(Player$(P)) = 7 THEN COL = 71
352 COLOR c4, BG, CB
353 LOCATE ROW, COL: PRINT UCASE$(Player$(P))
355 LOCATE ROW + 1, 75: COLOR c5, BG, CB: PRINT "0": ROW = ROW + 4
390 NEXT P
391 GOSUB 7100 '********** PRINTS PLAYERS' NAMES ACROSS TOP ****************
11000 '***************** BEGIN 13 TURNS OF PLAY *************************
11002 FOR TURN = 1 TO 13
11004 FOR P = 1 TO N
11040 FOR TRY = 1 TO 3: TRY$ = STR$(TRY)
11045 IF SD = 0 THEN SOUND 440, .5
COLOR C3, BG, CB: LOCATE 25, 4: PRINT "OK, "; UCASE$(Player$(P)); ", For Roll #"; TRY$; ", Press The SPACEBAR !! ";
11120 FOR XC = 6 TO 19: IF XC = 12 THEN 11121
IF XC = L THEN 11121
COLOR C2, BG, CB: LOCATE XC, 18 + 8 * P: PRINT Q1$; : LOCATE XC, 24 + 8 * P: PRINT Q2$;
COLOR c6, BG: LOCATE 6, 18 + 8 * P: PRINT Q1$; : LOCATE 6, 24 + 8 * P: PRINT Q2$;
11121 NEXT XC
11122 'IF sd = 0 THEN BEEP
'COLOR c6, BG: LOCATE 6, 26: PRINT Q1$; : LOCATE 6, 32: PRINT Q2$;
IF TRY > 1 THEN 11124
11123 'V$ = INPUT$(1)
V$ = INKEY$: IF V$ = "" THEN 11123
IF MID$(V$, 2, 1) = PJ$ THEN GOSUB Help
IF V$ = CHR$(27) THEN GOTO quit
IF MID$(V$, 2, 1) = "D" AND SD = 0 THEN SD = 1: GOSUB SD2: GOTO 11123
IF MID$(V$, 2, 1) = "D" AND SD = 1 THEN SD = 0: GOSUB SD2: GOTO 11123
IF ASC(V$) <> 32 THEN GOTO 11122
11124 LOCATE 25, 4: PRINT NO$;
IF GI = 0 THEN LOCATE 4, 1: PRINT NO$; : GI = 1
11125 R = 1: C = -1
11126 FOR DICE = 1 TO 5 ' ROLLS THE DICE
COLOR C3, BG, CB: FOR VV = 1 TO 5: LOCATE 2, VV * 13 + 6: PRINT VV; : NEXT VV
11127 C = C + 13
11130 IF KEEP(DICE) = 1 THEN 11270
11135 'V$=TIME$: R1$=MID$(V$,7,2): R1=VAL(R$): RANDOMIZE 1
11136 V$ = MID$(TIME$, 7, 2)
11137 RANDOMIZE VAL(V$)
11140 roll = INT(6 * RND) + 1
11150 COUNT(DICE) = roll
11209 LOCATE 1, 1: PRINT "Roll #"; TRY$;
11210 ON roll GOSUB 7010, 7020, 7030, 7040, 7050, 7060
11270 NEXT DICE
11280 'CALL SOUND
11281 L = 6
11282 COLOR C3, BG, CB: LOCATE 25, 4: PRINT UCASE$(Player$(P)); ",s Options: 0, 1, 2, 3, 4, 5, "; CHR$(24); " ,"; CHR$(25); " , SPACEBAR, or ENTER ";
11300 '
11301 FOR JJ = 6 TO 19:
11303 IF JJ = L THEN 11306
11304 IF JJ = 12 THEN 11306
11305 COLOR C2, BG, CB: LOCATE JJ, 18 + 8 * P: PRINT Q1$; : LOCATE JJ, 24 + 8 * P: PRINT Q2$;
11306 NEXT JJ
11307 V$ = INKEY$: IF V$ = "" THEN 11307
IF MID$(V$, 2, 1) = PJ$ THEN GOSUB Help
IF V$ = CHR$(27) THEN GOTO quit
IF MID$(V$, 2, 1) = "D" AND SD = 0 THEN SD = 1: GOSUB SD2: GOTO 11307
IF MID$(V$, 2, 1) = "D" AND SD = 1 THEN SD = 0: GOSUB SD2: GOTO 11307
11310 'IF LEN(V$) = 2 THEN V$ = RIGHT$(V$, 1)
11320 IF ASC(V$) = 13 THEN 14000'CR
' IF LEN(V$) = 2 THEN V$ = LEFT$(V$, 1)
11330 IF MID$(V$, 2, 1) = "H" THEN 12500'MINUS DONE
11340 IF MID$(V$, 2, 1) = "P" THEN 12600'PLUS DONE
11350 IF ASC(V$) = 32 THEN 11390'SPACEBAR
11352 IF ASC(V$) = 48 THEN 13000'ZERO DONE
11360 IF ASC(V$) < 49 THEN 11300
11361 IF ASC(V$) > 53 THEN 11300
11380 V = VAL(V$): ON V GOSUB 13100, 13200, 13300, 13400, 13500
11385 GOTO 11280
11390 IF TRY = 3 THEN 11300
11411 NEXT TRY
11440 'GOSUB 13000
11450 FOR XX = 1 TO 5: KEEP(XX) = 0: NEXT XX
11451 LOCATE 4, 1: PRINT NO$
11452 L = 5
11453 FOR FF = 6 TO 19: IF FF = 12 THEN 11455
11454 LOCATE FF, 3: PRINT " ";
11455 NEXT FF
11459 FOR BK = 1 TO 3: LOCATE BK, 1: PRINT NO$: NEXT BK: NEXT P
11460 NEXT TURN
11470 GOTO 15000
6100 '**************TO PRINT NAMES AND DICE NUMBERS (1-5)******************
6105 COLOR 3, 5, 0: LOCATE 8, 24: PRINT Player$(1): LOCATE 8, 34: PRINT Player$(2)
6110 GOTO 6110
7000 '**********************FOR PRINTING DICE******************
7010 'ONE
7011 IF SD = 0 THEN SOUND 220, 2
FOR AQ = 1 TO 3: LOCATE R - 1 + AQ, C: PRINT " "; : NEXT AQ
7012 COLOR C2, c6, CB: LOCATE R, C: PRINT "███████": LOCATE R + 1, C: PRINT "███ ███": LOCATE R + 2, C: PRINT "███████"
7013 RETURN
7020 'TWO
7021 IF SD = 0 THEN SOUND 247, 2
FOR AQ = 1 TO 3: LOCATE R - 1 + AQ, C: PRINT " "; : NEXT AQ
7022 COLOR C2, c6, CB: LOCATE R, C: PRINT "█▀█████": LOCATE R + 1, C: PRINT "███████": LOCATE R + 2, C: PRINT "█████▄█"
7023 RETURN
7030 'THREE
7031 IF SD = 0 THEN SOUND 261.6, 2
FOR AQ = 1 TO 3: LOCATE R - 1 + AQ, C: PRINT " "; : NEXT AQ
7032 COLOR C2, c6, CB: LOCATE R, C: PRINT "█▀█████": LOCATE R + 1, C: PRINT "███ ███": LOCATE R + 2, C: PRINT "█████▄█"
7033 RETURN
7040 'FOUR
7041 IF SD = 0 THEN SOUND 293.6, 2
FOR AQ = 1 TO 3: LOCATE R - 1 + AQ, C: PRINT " "; : NEXT AQ
7042 COLOR C2, c6, CB: LOCATE R, C: PRINT "█▀███▀█": LOCATE R + 1, C: PRINT "███████": LOCATE R + 2, C: PRINT "█▄███▄█"
7043 RETURN
7050 'FIVE
7051 IF SD = 0 THEN SOUND 329.6, 2
FOR AQ = 1 TO 3: LOCATE R - 1 + AQ, C: PRINT " "; : NEXT AQ
7052 COLOR C2, c6, CB: LOCATE R, C: PRINT "█▀███▀█": LOCATE R + 1, C: PRINT "███ ███": LOCATE R + 2, C: PRINT "█▄███▄█"
7053 RETURN
7060 'SIX
7061 IF SD = 0 THEN SOUND 349.23, 2
FOR AQ = 1 TO 3: LOCATE R - 1 + AQ, C: PRINT " "; : NEXT AQ
7062 COLOR C2, c6, CB: LOCATE R, C: PRINT "█▀█▀█▀█": LOCATE R + 1, C: PRINT "███████": LOCATE R + 2, C: PRINT "█▄█▄█▄█"
7063 RETURN
7100 '************* PRINTS PLAYERS' NAME ON TOP OF COLUMNS *****************
7101 CL = 25
7102 COLOR c4, BG, CB
7105 FOR P = 1 TO N
7110 IF LEN(Player$(P)) = 7 THEN PL = CL + 1: LOCATE 5, PL: PRINT UCASE$(Player$(P));
7111 IF LEN(Player$(P)) = 6 THEN PL = CL + 2: LOCATE 5, PL: PRINT UCASE$(Player$(P));
7112 IF LEN(Player$(P)) = 5 THEN PL = CL + 2: LOCATE 5, PL: PRINT UCASE$(Player$(P));
7113 IF LEN(Player$(P)) = 4 THEN PL = CL + 3: LOCATE 5, PL: PRINT UCASE$(Player$(P));
7114 IF LEN(Player$(P)) = 3 THEN PL = CL + 3: LOCATE 5, PL: PRINT UCASE$(Player$(P));
7115 IF LEN(Player$(P)) = 2 THEN PL = CL + 4: LOCATE 5, PL: PRINT UCASE$(Player$(P));
7116 IF LEN(Player$(P)) = 1 THEN PL = CL + 4: LOCATE 5, PL: PRINT UCASE$(Player$(P));
7117 CL = CL + 8
7118 NEXT P
7119 RETURN
7200 ' ******************** DISPLAYS "R O L L 5" *************************
7201 COLOR C2, CB, CB
7205 ' OPEN "ROLL.5" FOR INPUT AS #1
7207 FOR x = 1 TO 4
7210 'INPUT #1, R$(x)
LOCATE x, 12: PRINT R$(x)
7212 NEXT x
7214 'CLOSE #1
7216 RETURN
9000 ' **************** PRINT SCORE CARD FOR 5 PEOPLE ********************
9001 COLOR c1, BG, CB
9004 'OPEN "ROLL5.S1" FOR INPUT AS #1
9005 'FOR x = 1 TO 20
9010 'INPUT #1, A$(x)
9015 'NEXT x
9020 FOR x = 1 TO 19
9025 LOCATE x + 3, 3: PRINT A$(x);
9030 NEXT x
9032 LOCATE 23, 3: PRINT A$(20);
9033 'CLOSE #1
9100 'OPEN "ROLL5.S2" FOR INPUT AS #1
9105 'FOR x = 1 TO 16
9110 'INPUT #1, a$(x)
9115 'NEXT x
9117 'CLOSE #1
9119 ROW = 6: COL = 4
9120 COLOR C7, BG, CB: LOCATE ROW, COL: PRINT B$(1)
9121 LOCATE ROW + 1, COL: PRINT B$(2)
9122 LOCATE ROW + 2, COL: PRINT B$(3)
9123 LOCATE ROW + 3, COL: PRINT B$(4)
9124 LOCATE ROW + 4, COL: PRINT B$(5)
9125 LOCATE ROW + 5, COL: PRINT B$(6)
9126 LOCATE ROW + 7, COL: PRINT B$(7)
9127 LOCATE ROW + 8, COL: PRINT B$(8)
9128 LOCATE ROW + 9, COL: PRINT B$(9)
9129 LOCATE ROW + 10, COL: PRINT B$(10)
9130 LOCATE ROW + 11, COL: PRINT B$(11)
9131 LOCATE ROW + 12, COL: PRINT B$(12)
9132 LOCATE ROW + 13, COL: PRINT B$(13)
9133 LOCATE ROW + 15, COL: PRINT B$(14)
9134 LOCATE ROW + 16, COL: PRINT B$(15)
9135 LOCATE ROW + 17, COL: PRINT B$(16)
9200 RETURN
15000 GOTO 19000 'END OF GAME
12500 '***************** TO MOVE ARROW UP ONE LINE **********************
12501 COLOR C2, BG, CB: LOCATE L, 18 + 8 * P: PRINT Q1$; : LOCATE L, 24 + 8 * P: PRINT Q2$;
12502 L = L - 1: IF L < 6 THEN L = 19
12503 IF L = 12 THEN L = L - 1
12505 COLOR c6, BG, CB: LOCATE L, 18 + 8 * P: PRINT Q1$; : LOCATE L, 24 + 8 * P: PRINT Q2$;
12599 GOTO 11282
12600 '**************** TO MOVE ARROW DOWN ONE LINE ***********************
12601 COLOR C2, BG, CB: LOCATE L, 18 + 8 * P: PRINT Q1$; : LOCATE L, 24 + P * 8: PRINT Q2$;
12602 L = L + 1: IF L > 19 THEN L = 6
12603 IF L = 12 THEN L = L + 1
12605 COLOR c6, BG, CB: LOCATE L, 18 + 8 * P: PRINT Q1$; : LOCATE L, 24 + 8 * P: PRINT Q2$;
12699 GOTO 11282
13000 '************** ON ZERO TO SET ALL DICE FLAGS TO 0 *******************
13001 IF SD = 0 THEN SOUND 880, .5
COLOR C3, BG, CB
13002 FOR FL = 1 TO 5
13005 KEEP(FL) = 0
13007 NEXT FL
13008 LOCATE 4, 1: PRINT NO$
13009 GOTO 11282
13100 '******************** TO SET DIE #1 ********************************
13101 IF SD = 0 THEN SOUND 440, .5
COLOR C3, BG, CB
13105 IF KEEP(1) = 1 THEN KEEP(1) = 0: GOTO 13150
13110 KEEP(1) = 1
13130 LOCATE 4, 13: PRINT K$;
13140 GOTO 11282
13150 LOCATE 4, 13: PRINT " ";
13152 GOTO 11282
13200 '********************** TO SET DIE #2 *******************************
13201 IF SD = 0 THEN SOUND 494, .5
COLOR C3, BG, CB
13205 IF KEEP(2) = 1 THEN KEEP(2) = 0: GOTO 13250
13210 KEEP(2) = 1
13230 LOCATE 4, 26: PRINT K$;
13240 GOTO 11282
13250 LOCATE 4, 26: PRINT " ";
13252 GOTO 11282
13300 '******************** TO SET DIE #3 ********************************
13301 IF SD = 0 THEN SOUND 523.2, .5
COLOR C3, BG, CB
13305 IF KEEP(3) = 1 THEN KEEP(3) = 0: GOTO 13350
13310 KEEP(3) = 1
13330 LOCATE 4, 39: PRINT K$;
13340 GOTO 11282
13350 LOCATE 4, 39: PRINT " ";
13352 GOTO 11282
13400 '********************* TO SET DIE #4 ******************************
13401 IF SD = 0 THEN SOUND 587.4, .5
COLOR C3, BG, CB
13405 IF KEEP(4) = 1 THEN KEEP(4) = 0: GOTO 13450
13410 KEEP(4) = 1
13430 LOCATE 4, 52: PRINT K$;
13440 GOTO 11282
13450 LOCATE 4, 52: PRINT " ";
13452 GOTO 11282
13500 '*********************** TO SET DIE #5 *****************************
13501 IF SD = 0 THEN SOUND 659.2, .5
COLOR C3, BG, CB
13505 IF KEEP(5) = 1 THEN KEEP(5) = 0: GOTO 13550
13510 KEEP(5) = 1
13530 LOCATE 4, 65: PRINT K$;
13540 GOTO 11282
13550 LOCATE 4, 65: PRINT " ";
13552 GOTO 11282
14000 '********************* CHECKS CARRIAGE RETURN ***********************
14001 FOR PR = 6 TO 19: IF PR = 12 THEN 14003
14002 LOCATE PR, 18 + 8 * P: PRINT " "; : LOCATE PR, 24 + 8 * P: PRINT " ";
14003 NEXT PR
14008 COLOR C3, BG, CB
14009 ON L GOTO 1, 2, 3, 4, 5, 14010, 14030, 14050, 14070, 14090, 14110, 12, 14130, 14230, 14400, 14600, 14500, 14700, 14800
14010 IF OK$(P, L) = "Y" THEN 11300'*************** CHECK FOR ONES ************
14011 fLAG = 0
14012 FOR ZZ = 1 TO 5
14014 IF COUNT(ZZ) = 1 THEN fLAG = fLAG + 1
14016 NEXT ZZ
14018 SCORE(P) = SCORE(P) + fLAG: TOP(P) = TOP(P) + fLAG: TOP$ = STR$(TOP(P)): IF TOP(P) > 62 THEN GOSUB 18000
14020 LOCATE 6, 23 - LEN(STR$(fLAG)) + 8 * P: PRINT fLAG: LOCATE 21, 23 - LEN(TOP$) + P * 8: PRINT TOP(P)
14021 GOSUB 16000: OK$(P, L) = "Y": GOTO 14999
14030 IF OK$(P, L) = "Y" THEN 11300' ************** CHECK FOR TWOS ************
14031 fLAG = 0
14032 FOR ZZ = 1 TO 5
14033 IF COUNT(ZZ) = 2 THEN fLAG = fLAG + 2
14034 NEXT ZZ
14035 SCORE(P) = SCORE(P) + fLAG: TOP(P) = TOP(P) + fLAG: TOP$ = STR$(TOP(P)): IF TOP(P) > 62 THEN GOSUB 18000
14036 LOCATE 7, 23 - LEN(STR$(fLAG)) + 8 * P: PRINT fLAG: LOCATE 21, 23 - LEN(TOP$) + P * 8: PRINT TOP(P)
14037 GOSUB 16000: OK$(P, L) = "Y": GOTO 14999
14050 IF OK$(P, L) = "Y" THEN 11300'************ check for threes *************
14051 fLAG = 0
14052 FOR ZZ = 1 TO 5
14053 IF COUNT(ZZ) = 3 THEN fLAG = fLAG + 3
14054 NEXT ZZ
14055 SCORE(P) = SCORE(P) + fLAG: TOP(P) = TOP(P) + fLAG: TOP$ = STR$(TOP(P)): IF TOP(P) > 62 THEN GOSUB 18000
14056 LOCATE 8, 23 - LEN(STR$(fLAG)) + 8 * P: PRINT fLAG: LOCATE 21, 23 - LEN(TOP$) + P * 8: PRINT TOP(P)
14057 GOSUB 16000: OK$(P, L) = "Y": GOTO 14999
14070 IF OK$(P, L) = "Y" THEN 11300'************** CHECK FOR FOURS ***********
14071 fLAG = 0
14072 FOR ZZ = 1 TO 5
14073 IF COUNT(ZZ) = 4 THEN fLAG = fLAG + 4
14074 NEXT ZZ
14075 SCORE(P) = SCORE(P) + fLAG: TOP(P) = TOP(P) + fLAG: TOP$ = STR$(TOP(P)): IF TOP(P) > 62 THEN GOSUB 18000
14076 LOCATE 9, 23 - LEN(STR$(fLAG)) + 8 * P: PRINT fLAG: LOCATE 21, 23 - LEN(TOP$) + P * 8: PRINT TOP(P)
14077 GOSUB 16000: OK$(P, L) = "Y": GOTO 14999
14090 IF OK$(P, L) = "Y" THEN 11300' ************** CHECK FOR FIVES **********
14091 fLAG = 0
14092 FOR ZZ = 1 TO 5
14093 IF COUNT(ZZ) = 5 THEN fLAG = fLAG + 5
14094 NEXT ZZ
14095 SCORE(P) = SCORE(P) + fLAG: TOP(P) = TOP(P) + fLAG: TOP$ = STR$(TOP(P)): IF TOP(P) > 62 THEN GOSUB 18000
14096 LOCATE 10, 23 - LEN(STR$(fLAG)) + 8 * P: PRINT fLAG: LOCATE 21, 23 - LEN(TOP$) + P * 8: PRINT TOP(P)
14097 GOSUB 16000: OK$(P, L) = "Y"
14098 GOTO 14999
14110 IF OK$(P, L) = "Y" THEN 11300'************* CHECK FOR SIXES *************
14111 fLAG = 0
14112 FOR ZZ = 1 TO 5
14113 IF COUNT(ZZ) = 6 THEN fLAG = fLAG + 6
14114 NEXT ZZ
14115 SCORE(P) = SCORE(P) + fLAG: TOP(P) = TOP(P) + fLAG: TOP$ = STR$(TOP(P)): IF TOP(P) > 62 THEN GOSUB 18000
14116 LOCATE 11, 23 - LEN(STR$(fLAG)) + 8 * P: PRINT fLAG: LOCATE 21, 23 - LEN(TOP$) + P * 8: PRINT TOP(P)
14117 GOSUB 16000: OK$(P, L) = "Y": GOTO 14999
14130 IF OK$(P, L) = "Y" THEN 11300'*********** CHECK FOR 3 OF A KIND **********
14131 fLAG = 0: FOR Y = 1 TO 5: C(Y) = COUNT(Y): NEXT Y
14132 IF (C(1) = C(2)) AND (C(2) = C(3)) THEN 14145
14133 IF (C(1) = C(2)) AND (C(1) = C(4)) THEN 14145
14134 IF (C(1) = C(2)) AND (C(1) = C(5)) THEN 14145
14135 IF (C(1) = C(3)) AND (C(1) = C(4)) THEN 14145
14136 IF (C(1) = C(3)) AND (C(1) = C(5)) THEN 14145
14137 IF (C(1) = C(4)) AND (C(1) = C(5)) THEN 14145
14138 IF (C(2) = C(3)) AND (C(3) = C(4)) THEN 14145
14139 IF (C(2) = C(4)) AND (C(4) = C(5)) THEN 14145
14140 IF (C(2) = C(3)) AND (C(3) = C(5)) THEN 14145
14141 IF (C(3) = C(4)) AND (C(4) = C(5)) THEN 14145
14142 GOTO 14147
14145 FOR ZZ = 1 TO 5: fLAG = fLAG + C(ZZ): NEXT ZZ
14146 SCORE(P) = SCORE(P) + fLAG: BOT(P) = BOT(P) + fLAG: BOT$ = STR$(BOT(P))
14147 LOCATE 13, 23 - LEN(STR$(fLAG)) + 8 * P: PRINT fLAG: LOCATE 23, 23 - LEN(BOT$) + 8 * P: PRINT BOT(P)
14148 GOSUB 16000: OK$(P, L) = "Y": GOTO 14999
14230 IF OK$(P, L) = "Y" THEN 11300'*********** CHECK FOR 4 OF A KIND *******
14231 fLAG = 0: FOR Y = 1 TO 5: C(Y) = COUNT(Y): NEXT Y
14232 IF (C(1) = C(2)) AND (C(2) = C(3)) AND (C(1) = C(4)) THEN 14300
14233 IF (C(1) = C(2)) AND (C(1) = C(4)) AND (C(4) = C(5)) THEN 14300
14234 IF (C(1) = C(2)) AND (C(1) = C(5)) AND (C(5) = C(3)) THEN 14300
14235 IF (C(1) = C(3)) AND (C(1) = C(4)) AND (C(4) = C(5)) THEN 14300
14241 IF (C(2) = C(3)) AND (C(3) = C(4)) AND (C(4) = C(5)) THEN 14300
14299 GOTO 14304
14300 FOR ZZ = 1 TO 5: fLAG = fLAG + C(ZZ): NEXT ZZ
14302 SCORE(P) = SCORE(P) + fLAG: BOT(P) = BOT(P) + fLAG: BOT$ = STR$(BOT(P))
14304 LOCATE 14, 23 - LEN(STR$(fLAG)) + 8 * P: PRINT fLAG: LOCATE 23, 23 - LEN(BOT$) + 8 * P: PRINT BOT(P)
14306 GOSUB 16000: OK$(P, L) = "Y": GOTO 14999
14400 IF OK$(P, L) = "Y" THEN 11300'************* CHECK FOR FULL HOUSE *******
14401 fLAG = 0: GOSUB 17000
14402 IF (COUNT(1) = COUNT(2)) AND (COUNT(2) = COUNT(3)) AND (COUNT(4) = COUNT(5)) THEN 14410
14403 IF (COUNT(1) = COUNT(2)) AND (COUNT(3) = COUNT(4)) AND (COUNT(4) = COUNT(5)) THEN 14410
14404 GOTO 14411
14410 fLAG = 25
14411 LOCATE 15, 23 - LEN(STR$(fLAG)) + 8 * P: PRINT fLAG;
14412 SCORE(P) = SCORE(P) + fLAG: BOT(P) = BOT(P) + fLAG: BOT$ = STR$(BOT(P)): LOCATE 23, 23 - LEN(BOT$) + 8 * P: PRINT BOT(P)
14413 GOSUB 16000: OK$(P, L) = "Y": GOTO 14999
14500 IF OK$(P, L) = "Y" THEN 11300'************ CHECK FOR LARGE STRAIGHT *****
14501 fLAG = 0
14502 GOSUB 17000
14503 IF (COUNT(1) = COUNT(2) - 1) AND (COUNT(2) = COUNT(3) - 1) AND (COUNT(3) = COUNT(4) - 1) AND (COUNT(4) = COUNT(5) - 1) THEN 14515
14511 GOTO 14516
14515 fLAG = 40
14516 LOCATE 17, 23 - LEN(STR$(fLAG)) + 8 * P: PRINT fLAG;
14517 SCORE(P) = SCORE(P) + fLAG: BOT(P) = BOT(P) + fLAG: BOT$ = STR$(BOT(P)): LOCATE 23, 23 - LEN(BOT$) + 8 * P: PRINT BOT(P)
14518 GOSUB 16000: OK$(P, L) = "Y": GOTO 14999
14600 IF OK$(P, L) = "Y" THEN 11300'************ CHECK FOR SMALL STRAIGHT ******
14601 fLAG = 0
14602 GOSUB 17000 'OPEN "SORTIN.DAT" FOR OUTPUT AS #3
14603 FOR RR = 1 TO 5: roll(RR) = COUNT(RR): NEXT RR
'???????
'IF roll(1) = roll(2) THEN roll(2) = roll(3): roll(3) = roll(4): roll(4) = roll(5)
IF roll(2) = roll(3) THEN roll(3) = roll(4): roll(4) = roll(5)
IF roll(3) = roll(4) THEN roll(4) = roll(5)
IF (roll(1) = roll(2) - 1) AND (roll(2) = roll(3) - 1) AND (roll(3) = roll(4) - 1) THEN 14620
IF (roll(2) = roll(3) - 1) AND (roll(3) = roll(4) - 1) AND (roll(4) = roll(5) - 1) THEN 14620
14605 'SHELL "SORT <SORTIN.DAT >SORTOUT.DAT"
14606 'OPEN "SORTOUT.DAT" FOR INPUT AS #3
14607 'FOR ZZ=1 TO 5: INPUT #3,COUNT(ZZ): NEXT ZZ : CLOSE #3
14608 IF (COUNT(1) = COUNT(2) - 1) AND (COUNT(2) = COUNT(3) - 1) AND (COUNT(3) = COUNT(4) - 1) THEN 14620
14609 IF (COUNT(2) = COUNT(3) - 1) AND (COUNT(3) = COUNT(4) - 1) AND (COUNT(4) = COUNT(5) - 1) THEN 14620
14610 GOTO 14621
14620 fLAG = 30
14621 LOCATE 16, 23 - LEN(STR$(fLAG)) + 8 * P: PRINT fLAG;
14622 SCORE(P) = SCORE(P) + fLAG: BOT(P) = BOT(P) + fLAG: BOT$ = STR$(BOT(P)): LOCATE 23, 23 - LEN(BOT$) + 8 * P: PRINT BOT(P)
14623 GOSUB 16000: OK$(P, L) = "Y": GOTO 14999
14700 '************** CHECK FOR ROLL5 *************
14701 '
14702 IF (COUNT(1) = COUNT(2)) AND (COUNT(2) = COUNT(3)) AND (COUNT(3) = COUNT(4)) AND (COUNT(4) = COUNT(5)) THEN CNT(P) = CNT(P) + 1: GOSUB 21000: GOTO 14710
IF CNT(P) > 0 THEN 11300
fLAG = 0: GOTO 14720
14710 IF CNT(P) = 1 THEN fLAG = 50
IF CNT(P) > 1 THEN fLAG = 100
14720 LOCATE 18, 23 - LEN(STR$(fLAG)) + 8 * P: DL = CNT(P) * 100 - 50: IF DL < 0 THEN DL = 0
PRINT DL;
SCORE(P) = SCORE(P) + fLAG: BOT(P) = BOT(P) + fLAG: BOT$ = STR$(BOT(P)): LOCATE 23, 23 - LEN(BOT$) + 8 * P: PRINT BOT(P)
GOSUB 16000
14725 IF fLAG = 50 OR fLAG = 0 THEN 14999 ' ****FOR NEXT PLAYER****
IF fLAG = 100 THEN P = P - 1: GOTO 14999'****FOR EXTRA TURN****
14800 IF OK$(P, L) = "Y" THEN 11300'************* ENTER SCORE FOR CHANCE ********
14801 fLAG = 0: FOR ZZ = 1 TO 5: fLAG = fLAG + COUNT(ZZ): NEXT ZZ
14802 SCORE(P) = SCORE(P) + fLAG: BOT(P) = BOT(P) + fLAG: BOT$ = STR$(BOT(P)): LOCATE 23, 23 - LEN(BOT$) + 8 * P: PRINT BOT(P)
14803 LOCATE 19, 23 - LEN(STR$(fLAG)) + 8 * P: PRINT fLAG;
14804 GOSUB 16000: OK$(P, L) = "Y": GOTO 14999
14999 GOTO 11450
17000 FOR II = 1 TO 5' ********* SORTS THE FIVE DICE *********
17001 FOR JJ = II TO 5
17002 IF COUNT(II) <= COUNT(JJ) THEN 17006
17003 HNUM = COUNT(JJ)
17004 COUNT(JJ) = COUNT(II)
17005 COUNT(II) = HNUM
17006 NEXT JJ
17007 NEXT II
17015 RETURN
18000 ' SETS EXTRA 35 POINTS FOR TOP PORTION SCORE OF 63+
18001 ' ***************************************************
18005 IF FL$(P) = "Y" THEN 18050
18010 FL$(P) = "Y"
18012 LOCATE 22, 20 + 8 * P: PRINT 35: SCORE(P) = SCORE(P) + 35: GOSUB 16000
18050 RETURN
16000 IF P = 1 THEN LOCATE 7, 76 - LEN(STR$(SCORE(P))): PRINT SCORE(P)
16001 IF P = 2 THEN LOCATE 11, 76 - LEN(STR$(SCORE(P))): PRINT SCORE(P)
16002 IF P = 3 THEN LOCATE 15, 76 - LEN(STR$(SCORE(P))): PRINT SCORE(P)
16003 IF P = 4 THEN LOCATE 19, 76 - LEN(STR$(SCORE(P))): PRINT SCORE(P)
16004 IF P = 5 THEN LOCATE 23, 76 - LEN(STR$(SCORE(P))): PRINT SCORE(P)
16006 GOSUB 21200: RETURN
19000 ' ************* END OF GAME **************
19001 GOSUB 19500
CLS
GOSUB ShowScores
GOTO quit2
19002 V$ = INKEY$: IF V$ = "" THEN 19002
IF MID$(V$, 2, 1) = PJ$ THEN GOSUB Help
IF V$ = CHR$(27) THEN GOTO quit
IF MID$(V$, 2, 1) = "D" AND SD = 0 THEN SD = 1: GOSUB SD2: GOTO 19002
IF MID$(V$, 2, 1) = "D" AND SD = 1 THEN SD = 0: GOSUB SD2: GOTO 19002
19003 IF SD = 0 THEN BEEP
GOTO 2
19005 LOCATE 25, 1: PRINT "Play Again or End play? Press P or E! ";
19010 V$ = INKEY$: IF V$ = "" THEN 19010
IF MID$(V$, 2, 1) = PJ$ THEN GOSUB Help
IF V$ = CHR$(27) THEN GOTO quit
IF MID$(V$, 2, 1) = "D" AND SD = 0 THEN SD = 1: GOSUB SD2: GOTO 19010
IF MID$(V$, 2, 1) = "D" AND SD = 1 THEN SD = 0: GOSUB SD2: GOTO 19010
19015 IF V$ = "p" OR V$ = "P" THEN GI = 0: GOTO 19100
19020 IF V$ = "e" OR V$ = "E" THEN 19200
19030 IF SD = 0 THEN BEEP
GOTO 19010
19100 GOSUB 19500: GOTO 1
19200 GOSUB 19500: SYSTEM
19500 ' to save scores
19501 ' ******************
19510 OPEN "roll5.sco" FOR APPEND AS #4
19514 FOR kp = 1 TO N
19515 IF SCORE(kp) > 99 THEN PRINT #4, SCORE(kp); TAB(10); UCASE$(Player$(kp)); TAB(22); DATE$
19520 NEXT kp: CLOSE #4: RETURN
21000 ' sounds sounds sounds sounds
21001 ' *******************************
21105 IF SD = 0 THEN FOR SND = 440 TO 1000 STEP 5: SOUND SND, .5: NEXT
21110 IF SD = 0 THEN FOR SND = 1000 TO 440 STEP -5: SOUND SND, .5: NEXT
21115 RETURN
21200 IF SD = 0 THEN SOUND 440, 1: SOUND 880, 1: SOUND 440, 1: SOUND 880, 1
RETURN
SD2:
IF SD = 0 THEN LOCATE 25, 68: PRINT "Sound is ON ";
IF SD = 1 THEN LOCATE 25, 68: PRINT "Sound is OFF";
RETURN
Colors: CLS
CLR1:
'OPEN "roll5.s1" FOR INPUT AS #11
'FOR WW = 1 TO 20
'INPUT #11, J1$(WW)
'NEXT WW
'CLOSE #11
'OPEN "roll5.s2" FOR INPUT AS #12
'FOR WW = 1 TO 16
'INPUT #12, J2$(WW)
'NEXT WW
'CLOSE #12
CLR2:
COLOR C3, BG
LOCATE 1, 3: PRINT FD1$;
LOCATE 25, 3: PRINT FD2$;
LOCATE 2, 23: PRINT "1 2 3 4 5";
LOCATE 4, 16: PRINT K$
LOCATE 4, 40: PRINT K$
COLOR C2, c6
LOCATE 1, 15: PRINT J3$(1);
LOCATE 2, 15: PRINT J3$(2);
LOCATE 3, 15: PRINT J3$(3);
LOCATE 1, 27: PRINT J3$(4);
LOCATE 2, 27: PRINT J3$(5);
LOCATE 3, 27: PRINT J3$(6);
LOCATE 1, 39: PRINT J3$(7);
LOCATE 2, 39: PRINT J3$(8);
LOCATE 3, 39: PRINT J3$(9);
LOCATE 1, 51: PRINT J3$(10);
LOCATE 2, 51: PRINT J3$(11);
LOCATE 3, 51: PRINT J3$(12);
LOCATE 1, 63: PRINT J3$(13);
LOCATE 2, 63: PRINT J3$(14);
LOCATE 3, 63: PRINT J3$(15);
COLOR c1, BG
FOR WW = 1 TO 20
LOCATE WW + 4, 1: PRINT A$(WW);
NEXT WW
COLOR C7, BG
WWC = 6
FOR WW = 1 TO 16
LOCATE WWC, 4: PRINT B$(WW);
WWC = WWC + 1
IF WWC = 12 THEN WWC = 13
IF WWC = 20 THEN WWC = 21
NEXT WW
COLOR c4, BG
LOCATE 5, 73: PRINT "Bob";
LOCATE 9, 73: PRINT "Jim";
LOCATE 13, 72: PRINT "Jane";
LOCATE 17, 71: PRINT "Tarzan";
LOCATE 21, 73: PRINT "DOL";
LOCATE 5, 28: PRINT "Bob";
LOCATE 5, 36: PRINT "Jim";
LOCATE 5, 43: PRINT "Jane";
LOCATE 5, 50: PRINT "Tarzan";
LOCATE 5, 60: PRINT "DOL";
COLOR C2, BG
FOR WW = 6 TO 11
LOCATE WW, 26: PRINT Q1$; " "; Q2$;
NEXT WW
FOR WW = 13 TO 19
LOCATE WW, 26: PRINT Q1$; " "; Q2$;
NEXT WW
FOR WW = 21 TO 23
LOCATE WW, 26: PRINT Q1$; " "; Q2$;
NEXT WW
COLOR c6, BG
LOCATE 8, 26: PRINT Q1$; " "; Q2$;
COLOR c5, BG
LOCATE 6, 30: PRINT "3";
LOCATE 7, 30: PRINT "8";
LOCATE 8, 29: PRINT "12";
LOCATE 7, 73: PRINT "000";
LOCATE 11, 73: PRINT "000";
LOCATE 15, 73: PRINT "000";
LOCATE 19, 73: PRINT "000";
LOCATE 23, 73: PRINT "000";
LOCATE 25, 1, 0
GH: V$ = INKEY$: IF V$ = "" THEN GOTO GH
IF MID$(V$, 2, 1) = PJ$ THEN GOSUB Help
IF MID$(V$, 2, 1) = ";" THEN c1 = c1 + 1: IF c1 > 15 THEN c1 = 1
IF MID$(V$, 2, 1) = "<" THEN C2 = C2 + 1: IF C2 > 15 THEN C2 = 1
IF MID$(V$, 2, 1) = "=" THEN C3 = C3 + 1: IF C3 > 15 THEN C3 = 1
IF MID$(V$, 2, 1) = ">" THEN c4 = c4 + 1: IF c4 > 15 THEN c4 = 1
IF MID$(V$, 2, 1) = "?" THEN c5 = c5 + 1: IF c5 > 15 THEN c5 = 1
IF MID$(V$, 2, 1) = "@" THEN c6 = c6 + 1: IF c6 > 15 THEN c6 = 1
IF MID$(V$, 2, 1) = "A" THEN C7 = C7 + 1: IF C7 > 15 THEN C7 = 1
IF MID$(V$, 2, 1) = "B" AND Q1$ = CHR$(16) THEN Q1$ = CHR$(26): Q2$ = CHR$(27): GOTO CLR2
IF MID$(V$, 2, 1) = "B" AND Q1$ = CHR$(26) THEN Q1$ = CHR$(254): Q2$ = CHR$(254): GOTO CLR2
IF MID$(V$, 2, 1) = "B" AND Q1$ = CHR$(254) THEN Q1$ = CHR$(1): Q2$ = CHR$(1): GOTO CLR2
IF MID$(V$, 2, 1) = "B" AND Q1$ = CHR$(1) THEN Q1$ = CHR$(16): Q2$ = CHR$(17): GOTO CLR2
IF MID$(V$, 2, 1) = "C" THEN GOTO CLR5 'abort changes
IF MID$(V$, 2, 1) = "D" THEN GOTO CLR6 'save changes
GOTO CLR2
CLR5: CLS : GOTO 30
CLR6: COLOR 14, 4
LOCATE 12, 12: PRINT " ╔═══════════════════════════════╗ "
LOCATE 13, 12: PRINT " ║ ║ "
LOCATE 14, 12: PRINT " ║ ║ "
LOCATE 15, 12: PRINT " ║ ║ "
LOCATE 16, 12: PRINT " ║ ║ "
LOCATE 17, 12: PRINT " ╚═══════════════════════════════╝ "
COLOR 0, 14
LOCATE 13, 14: PRINT " Save these color changes for: "
COLOR 7, 4
LOCATE 14, 15: PRINT " Color system"
LOCATE 15, 15: PRINT " Mono system"
LOCATE 16, 15: PRINT " Laptop system"
COLOR 14, 4
LOCATE 14, 15: PRINT " C"
LOCATE 15, 15: PRINT " M"
LOCATE 16, 15: PRINT " L"
CL: V$ = INKEY$: IF V$ = "" THEN GOTO CL
IF MID$(V$, 2, 1) = PJ$ THEN GOSUB Help
IF V$ = "C" OR V$ = "c" THEN XFile$ = "roll5.col": GOTO CL9
IF V$ = "M" OR V$ = "m" THEN XFile$ = "roll5.mon": GOTO CL9
IF V$ = "L" OR V$ = "l" THEN XFile$ = "roll5.lap": GOTO CL9
GOTO CL
CL9: OPEN XFile$ FOR OUTPUT AS #9
PRINT #9, c1
PRINT #9, C2
PRINT #9, C3
PRINT #9, c4
PRINT #9, c5
PRINT #9, c6
PRINT #9, C7
PRINT #9, ASC(Q1$)
PRINT #9, ASC(Q2$)
CLOSE #9
COLOR 4, 0
CLS
GOTO 19
quit: ' GOTO 2
quit2: CLS
COLOR 1, 2
PRINT Exit$
COLOR 7, 0
LOCATE 2, 1, 1
END
Help: PCOPY 0, 1
COLOR c1, BG
LOCATE 1, 1: PRINT VC1$;
FOR VX = 2 TO 24
LOCATE VX, 1: PRINT VC2$;
NEXT VX
LOCATE 25, 1: PRINT VC3$;
OPEN "roll5.hlp" FOR INPUT AS #5
COLOR c4, BG
LINE INPUT #5, HLP$: LOCATE 1, (80 - LEN(HLP$)) / 2: PRINT HLP$;
LINE INPUT #5, HLP$: LOCATE 25, (80 - LEN(HLP$)) / 2: PRINT HLP$;
COLOR c5, BG
FOR HE = 1 TO 23
LINE INPUT #5, HLP$
IF LEN(HLP$) < 76 THEN HLP$ = HLP$ + MID$(NO$, 1, 76 - LEN(HLP$))
HLP$ = LEFT$(HLP$, 76)
LOCATE HE + 1, 3: PRINT HLP$;
NEXT HE
CLOSE #5
H: V$ = INKEY$: IF V$ = "" THEN GOTO H
PCOPY 1, 0
RETURN